09. 类型和类型转换
这个对象属于什么类型?
到目前为止,我们已经介绍了四种类型:
-
int
(整数) -
float
(浮点数) -
bool
(布尔值,True 和 False) -
str
(字符串,针对文本)
Python 中的每个对象都有一个类型。对象的类型定义了哪些运算符和函数能作用于该对象,以及它们的运行原理。
你可以使用内置函数
type()
来直接查看对象的类型,例如:
>>> print(type(633))
int
>>> print(type("633"))
str
>>> print(type(633.0))
float
在上面的示例中,我们实际上采用了三种不同的方式来定义同样的数字,因此它们有三种不同的类型,其中每种类型都有自己的运行方式。
作为旁注,我们对函数
type()
的输出调用了函数
print()
。这段代码将首先运算括号里的内容,再将得出的值作为输出传递给下一个函数。在这个示例中,Python 将首先运行
type()
函数,然后其输出被
print()
出来。
哪种类型? I
SOLUTION:
str哪种类型? I
SOLUTION:
float哪种类型? III
SOLUTION:
int哪种类型? IV
SOLUTION:
str类型练习
请在下方的练习中测试对象的类型。不要忘记使用
print
来查看代码运行的结果。
Start Quiz:
选择类型
不同的类型具有不同的属性,在设计计算机程序时,我们需要根据使用数据的方式来选择数据类型。
例如,如果你要将数字作为句子的一部分,很简单,这个数字的类型需要是字符串。如果你要对一个 true/false 值进行编码,那么布尔型操作起来要比字符串容易一些。
在一些情况中,你可能无法决定自己所收到的数据的类型,但仍需要使用它。这时你可以基于旧对象来创建新对象,并在这一过程中更改数值类型。
我们来看一些例子:
下面这段代码从浮点数创建了一个整数,并将其赋值给变量
count
,最后打印出了
count
及其类型。
>>> count = int(4.0)
>>> print(count)
4
>>> print(type(count))
<class 'int'>
下面这段代码从数字创建了一个字符串:
>>> house_number = 13
>>> street_name = "The Crescent"
>>> town_name = "Belmont"
>>> print(type(house_number))
<class 'int'>
>>> address = str(house_number) + " " + street_name + ", " + town_name
>>> print(address)
13 The Crescent, Belmont
我们也可以从字符串创建一个数字,例如:
>>> grams_of_sugar = float("35.0")
>>> print(grams_of_sugar)
35.0
>>> print(type(grams_of_sugar))
<class 'float'>
练习:销售总额
在下面这道练习中,你需要更改输入和输出数据的类型来获得你希望的结果。
请根据提供的数据计算并打印一周的销售总额。你需要打印一个格式为:
"This week's total sales: xxx"
的字符串,其中 xxx 将是实际销售总额的数字。你需要更改输入数据的类型才可以计算销售总额。
Start Quiz:
mon_sales = "121"
tues_sales = "105"
wed_sales = "110"
thurs_sales = "98"
fri_sales = "95"
#TODO: Print a string with this format: This week's total sales: xxx
# You will probably need to write several lines of code before the print statement.
答案:
weekly_sales = int(mon_sales) + int(tues_sales) + int(wed_sales) + int(thurs_sales) + int(fri_sales)
weekly_sales = str(weekly_sales)
print("This week's total sales: " + weekly_sales)